<%@page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*,java.text.*"%>
<%@ page import="java.text.SimpleDateFormat, java.util.Date,java.util.*,java.util.Calendar"%>
<%@ include file="Connections/conDB.jsp" %>
<%
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", -1); //prevents caching at the proxy server
%>
<% int validaSession = 1; %>
<%@ include file="Connections/session.jsp" %>

<html>
<head>
<title>CIMA v2 - Subir Nuevas Facturas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="miestilo.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" background="images/fondo.jpg">
<br><br><br><br><br>
	<%
	/*out.print("<Center>");
 	out.print("<table width=\"20%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">");
	out.print("<tr>");
    out.print("<td align=\"Center\">");
	out.print("<table width=\"20%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"Left\">");
	out.print("<tr>");
	out.print("<td class=\"titcolumna\" align=\"Center\">Subiendo Facturas</td>");
	out.print("</tr>");
	out.print("</table>");
	out.print("</td>");
	*/
	out.print("<br><br>");
	out.print("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subiendo Facturas ");
		SimpleDateFormat dateformat = new SimpleDateFormat("MM/dd/yyyy",Locale.US);
		
		String No_Factura = "";
		Date Fecha_Factura = new Date();
		double Importe_porFact = 0.0;
		double IVA_porFact = 0.0;
		double Total_porFact = 0.0;
		String Tipo_Moneda = "";
		String Estado = "No Conciliado";
		java.util.Calendar fechaHoy = java.util.Calendar.getInstance();
		String fecha = (fechaHoy.get(fechaHoy.MONTH)+1)+"/"+(fechaHoy.get(fechaHoy.DATE))+"/"+fechaHoy.get(fechaHoy.YEAR);
		//out.println("-----> FECHA " + fecha);
		java.util.Calendar horaactual = java.util.Calendar.getInstance();
		String AM_PM = ""+horaactual.get(horaactual.AM_PM);
		String Minuto = ""+horaactual.get(horaactual.MINUTE);
		Minuto = Minuto.length()>1?Minuto:"0"+Minuto;
		String hora = horaactual.get(horaactual.HOUR)+":"+(Minuto)+":"+horaactual.get(horaactual.SECOND)+" "+(AM_PM=="1"?"PM":"AM");
		//out.println("-----> HORA " + hora);
		  	Connection ConnRsFactTempo = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
			String queryFactTempo = "";
				    queryFactTempo += "SELECT no_factura,fecha_factura,SUM(importe) AS ImporteXFact, SUM(iva) AS IVAXFact, SUM(total) AS TotalXFact,tipo_moneda ";
					queryFactTempo += "FROM concil_unidad_fact_temp ";
					queryFactTempo += "group by no_factura, fecha_factura,tipo_moneda";
			//out.print(queryFactTempo);
			PreparedStatement StatementRsFactTempo = ConnRsFactTempo.prepareStatement(queryFactTempo);
			ResultSet RsqueryFactTempo = StatementRsFactTempo.executeQuery();
			int num = 0;
			while (RsqueryFactTempo!=null && RsqueryFactTempo.next()) {
				num++;
				No_Factura = RsqueryFactTempo.getString("no_factura"); //!=null?RsqueryFactTempo.getString("no_factura"):"&nbsp;";
				Fecha_Factura = RsqueryFactTempo.getDate("fecha_factura"); //!=null?RsqueryFactTempo.getDate("fecha_factura"):"&nbsp;";
				Importe_porFact = RsqueryFactTempo.getDouble("ImporteXFact"); 
				IVA_porFact = RsqueryFactTempo.getDouble("IVAXFact");
				Total_porFact = RsqueryFactTempo.getDouble("TotalXFact");
				//out.println("<br>  Importe - " +Importe_porFact +" - IVA - "+IVA_porFact+" - Total -" +Total_porFact+"<br>");
				Tipo_Moneda = RsqueryFactTempo.getString("tipo_moneda");
				
				Connection ConnRsFacturas = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
				String queryFacturas ="";
				PreparedStatement StatementRsFacturas =null;
				queryFacturas="INSERT INTO concil_fact (no_factura,fecha_factura,importe,iva,total,"+
						 	  "moneda,status,fecha_descarga,hora_descarga,fecha_conciliacion) "+
							  "VALUES ('"+No_Factura+"','"+dateformat.format(Fecha_Factura)+"',"+Importe_porFact+", "+
							  " "+IVA_porFact+","+Total_porFact+",'"+Tipo_Moneda+"','"+Estado+"','"+fecha+"','"+hora+"',NULL) ";
				//out.println("<br> --- " +queryFacturas);
				StatementRsFacturas = ConnRsFacturas.prepareStatement(queryFacturas);
      			StatementRsFacturas.executeUpdate();
				ConnRsFacturas.close();
	  	}
		ConnRsFactTempo.close();
		
			String No_Fact = "";
			int No_Sistema = 0;
		  	Connection ConnRsNoFact = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
			String queryNoFact = "";
				    queryNoFact += "SELECT no_factura,fecha_factura,tipo_moneda ";
					queryNoFact += "FROM concil_unidad_fact_temp ";
					queryNoFact += "group by no_factura, fecha_factura,tipo_moneda ";
					queryNoFact += "order by no_factura, fecha_factura,tipo_moneda ";
			//out.print(queryNoFact);
			PreparedStatement StatementRsNoFact = ConnRsNoFact.prepareStatement(queryNoFact);
			ResultSet RsqueryNoFact = StatementRsNoFact.executeQuery();
			while (RsqueryNoFact!=null && RsqueryNoFact.next()) {
				No_Fact = RsqueryNoFact.getString("no_factura"); 
				//out.println("<br> no FAct "+No_Factura+"<br>");
			  	Connection ConnRsIdFact = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
				String queryIdFact = "";
				    queryIdFact += "SELECT no_sistema ";
					queryIdFact += "FROM concil_fact ";
					queryIdFact += "WHERE no_factura = '"+No_Fact+"' ";
					queryIdFact += "Order By fecha_descarga DESC, hora_descarga DESC ";
					//out.print("<br><br>----------"+queryIdFact);
					PreparedStatement StatementRsIdFact = ConnRsIdFact.prepareStatement(queryIdFact);
					ResultSet RsqueryIdFact = StatementRsIdFact.executeQuery();
					int conta = 0;
					if (RsqueryIdFact!=null && RsqueryIdFact.next()) {
						conta++;
						//out.println("<br> ------ CONTADOR NO SISTEMA ------ "+conta+"<br>");
						No_Sistema = RsqueryIdFact.getInt("no_sistema");
						//out.println("No Sistema "+No_Sistema+"<br>");
			
						String Inicial = "";
						String Numero = "0";
						String Guia = "";
						Date Fecha_Unidad = new Date();
						String Almacen_O = "";
						String Almacen_D = "";
						double Importe_porUni = 0.0;
						double IVA_porUni = 0.0;
						double Total_porUni = 0.0;
						String Observaciones = "";
					  	Connection ConnRsUnidadTempo = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
						String queryUnidadTempo = "";
							    queryUnidadTempo += "SELECT inicial,numero,guia,fecha_unidad,almacen_origen,almacen_destino,importe,iva,total,observaciones ";
								//queryUnidadTempo += "SELECT COUNT(inicial) AS inicial ";
								queryUnidadTempo += "FROM concil_unidad_fact_temp ";
								queryUnidadTempo += "WHERE no_factura = '"+No_Fact+"' ";
								//out.print(queryUnidadTempo);
						PreparedStatement StatementRsUnidadTempo = ConnRsUnidadTempo.prepareStatement(queryUnidadTempo);
						ResultSet RsqueryUnidadTempo = StatementRsUnidadTempo.executeQuery();
						int cont = 0;
							while(RsqueryUnidadTempo!=null && RsqueryUnidadTempo.next()) {
								cont++;
								//out.println("<br> ------ CONTADOR UNIDADES ------ "+cont);
								Inicial = RsqueryUnidadTempo.getString("inicial");
								//out.println("<br>"+Inicial);
								Numero = RsqueryUnidadTempo.getString("numero");
								//out.println("<br>"+Numero);
								Guia = RsqueryUnidadTempo.getString("guia"); 
								//out.println("<br>"+Guia);
								Fecha_Unidad = RsqueryUnidadTempo.getDate("fecha_unidad");
								//out.println("<br>"+Fecha_Unidad);
								Almacen_O = RsqueryUnidadTempo.getString("almacen_origen");
								//out.println("<br>"+Almacen_O);
								Almacen_D = RsqueryUnidadTempo.getString("almacen_destino");
								//out.println("<br>"+Almacen_D);
								Importe_porUni = RsqueryUnidadTempo.getDouble("importe");
								//out.println("<br>"+Importe_porUni);
								IVA_porUni = RsqueryUnidadTempo.getDouble("iva");
								//out.println("<br>"+IVA_porUni);
								Total_porUni = RsqueryUnidadTempo.getDouble("total");
								//out.println("<br>"+Total_porUni);
								Observaciones = RsqueryUnidadTempo.getString("observaciones");
								//out.println("<br>"+Observaciones);
								
				//---------------------------
				Connection ConnRsUnidades = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
				String queryUnidades ="";
				PreparedStatement StatementRsUnidades =null;
				queryUnidades="INSERT INTO concil_unidad (inicial,numero,guia,fecha,almacen_origen,almacen_destino,"+
							  "importe,iva,total,observaciones,no_factsist) "+
					           "VALUES ('"+Inicial+"','"+Numero+"','"+Guia+"','"+dateformat.format(Fecha_Unidad)+"', "+
							   "'"+Almacen_O+"','"+Almacen_D+"',"+Importe_porUni+","+IVA_porUni+","+Total_porUni+", "+
							   "'"+Observaciones+"',"+No_Sistema+") ";
				//out.println("<br> --- " +queryUnidades);
				if((cont%6)==0){
				out.print(".");
				out.flush();
				}
				StatementRsUnidades = ConnRsUnidades.prepareStatement(queryUnidades);
      			StatementRsUnidades.executeUpdate();
				//--------------------------
						}
						ConnRsUnidadTempo.close();
					}
					ConnRsIdFact.close();
			}
			ConnRsNoFact.close();
			//Borrar Tabla Temporal Exportada desde Excel
				Connection ConnRsBorrarTemporal = DriverManager.getConnection(MM_conDB_STRING,MM_conDB_USERNAME,MM_conDB_PASSWORD);
				String queryBorrarTemporal ="";
				PreparedStatement StatementRsBorrarTemporal =null;
				queryBorrarTemporal="DELETE FROM concil_unidad_fact_temp";
				//out.println("<br> --- " +queryBorrarTemporal);
				StatementRsBorrarTemporal = ConnRsBorrarTemporal.prepareStatement(queryBorrarTemporal);
      			StatementRsBorrarTemporal.executeUpdate();
				ConnRsBorrarTemporal.close();
			//--------------------------------------------
			int Pase = 0;
			out.print("&nbsp;&nbsp;&nbsp;Proceso Terminado");
			Pase = 1;
			
		/*  out.print("<td align=\"Center\">");
		  out.print("<table width=\"20%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"Right\">");
		  out.print("<tr>");
		  out.print("<td class=\"titcolumna\" align=\"Center\">Subiendo Facturas</td>");
		  out.print("</tr>");
		  out.print("</table>");
		out.print("</td>");
		out.print("</tr>");
		out.print("</Table>");
		out.print("</Center>");*/
if (Pase==1) {
  %>
  <br><br>
 <table width="50%" border="0" cellpadding="0" cellspacing="0" align="Center">
  <tr> 
    <td class="textcolumna" align="Center">Las Facturas han sido Almacenadas con 
      Exito en la Base de Datos</td>
   </tr>
   <tr>
     
    <td align="center" height="35" valign="bottom"> 
      <!--<input type="button" name="Button2" value="Aceptar" class="boton" onClick="javascript:location.replace('blank.htm');">-->
      <a href="javascript:location.replace('concilTFM_listaFact.jsp');"><img src="images/bAceptar.gif" border="0" width="82" height="18"></a> 
    </td>
   </tr>
  </table>
  <%
  }
  %>
</body>
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
</html>
